package com.ruoyi.wifiauth.service;

import java.util.Map;

/**
 * 小程序WiFi认证服务接口
 * 
 * @author ruoyi
 */
public interface IWifiMiniProgramService {
    
    /**
     * 开始认证流程（用户扫码后）
     * 
     * @param deviceId 设备ID
     * @param userMac 用户MAC地址
     * @param openid 微信OpenID
     * @return 会话ID
     */
    String startAuthProcess(String deviceId, String userMac, String openid);
    
    /**
     * 完成广告观看后处理
     * 
     * @param sessionId 会话ID
     * @param phoneNum 手机号
     * @return 是否成功
     */
    boolean completeAdWatch(String sessionId, String phoneNum);
    
    /**
     * 验证码验证并完成认证
     * 
     * @param sessionId 会话ID
     * @param verifyCode 验证码
     * @return 是否成功
     */
    boolean verifyCodeAndComplete(String sessionId, String verifyCode);
    
    /**
     * 重新发送验证码
     * 
     * @param sessionId 会话ID
     * @param phoneNumber 手机号码
     * @return 是否成功
     */
    boolean resendVerifyCode(String sessionId, String phoneNumber);
    
    /**
     * 上报广告观看完成
     * 
     * @param sessionId 会话ID
     * @param materialId 素材ID
     * @param duration 观看时长(秒)
     * @param completed 是否完整观看
     * @param action 行为类型
     * @return 是否成功
     */
    boolean reportAdComplete(String sessionId, Long materialId, Integer duration, Boolean completed, String action);
    
    /**
     * 获取服务协议内容
     * 
     * @param type 协议类型 (service|privacy|all)
     * @return 协议内容
     */
    Map<String, Object> getAgreements(String type);
} 